Search Results

Documents authored by Harris, Sarah


Document
Experience Paper
Rust for Morello: Always-On Memory Safety, Even in Unsafe Code (Experience Paper)

Authors: Sarah Harris, Simon Cooksey, Michael Vollmer, and Mark Batty

Published in: LIPIcs, Volume 263, 37th European Conference on Object-Oriented Programming (ECOOP 2023)


Abstract
Memory safety issues are a serious concern in systems programming. Rust is a systems language that provides memory safety through a combination of a static checks embodied in the type system and ad hoc dynamic checks inserted where this analysis becomes impractical. The Morello prototype architecture from ARM uses capabilities, fat pointers augmented with object bounds information, to catch failures of memory safety. This paper presents a compiler from Rust to the Morello architecture, together with a comparison of the performance of Rust’s runtime safety checks and the hardware-supported checks of Morello. The cost of Morello’s always-on memory safety guarantees is 39% in our 19 benchmark suites from the Rust crates repository (comprising 870 total benchmarks). For this cost, Morello’s capabilities ensure that even unsafe Rust code benefits from memory safety guarantees.

Cite as

Sarah Harris, Simon Cooksey, Michael Vollmer, and Mark Batty. Rust for Morello: Always-On Memory Safety, Even in Unsafe Code (Experience Paper). In 37th European Conference on Object-Oriented Programming (ECOOP 2023). Leibniz International Proceedings in Informatics (LIPIcs), Volume 263, pp. 39:1-39:27, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)


Copy BibTex To Clipboard

@InProceedings{harris_et_al:LIPIcs.ECOOP.2023.39,
  author =	{Harris, Sarah and Cooksey, Simon and Vollmer, Michael and Batty, Mark},
  title =	{{Rust for Morello: Always-On Memory Safety, Even in Unsafe Code}},
  booktitle =	{37th European Conference on Object-Oriented Programming (ECOOP 2023)},
  pages =	{39:1--39:27},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-281-5},
  ISSN =	{1868-8969},
  year =	{2023},
  volume =	{263},
  editor =	{Ali, Karim and Salvaneschi, Guido},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2023.39},
  URN =		{urn:nbn:de:0030-drops-182322},
  doi =		{10.4230/LIPIcs.ECOOP.2023.39},
  annote =	{Keywords: Compilers, Rust, Memory Safety, CHERI}
}
Document
Artifact
Rust for Morello: Always-On Memory Safety, Even in Unsafe Code (Artifact)

Authors: Sarah Harris, Simon Cooksey, Michael Vollmer, and Mark Batty

Published in: DARTS, Volume 9, Issue 2, Special Issue of the 37th European Conference on Object-Oriented Programming (ECOOP 2023)


Abstract

Cite as

Sarah Harris, Simon Cooksey, Michael Vollmer, and Mark Batty. Rust for Morello: Always-On Memory Safety, Even in Unsafe Code (Artifact). In Special Issue of the 37th European Conference on Object-Oriented Programming (ECOOP 2023). Dagstuhl Artifacts Series (DARTS), Volume 9, Issue 2, pp. 25:1-25:2, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2023)


Copy BibTex To Clipboard

@Article{harris_et_al:DARTS.9.2.25,
  author =	{Harris, Sarah and Cooksey, Simon and Vollmer, Michael and Batty, Mark},
  title =	{{Rust for Morello: Always-On Memory Safety, Even in Unsafe Code (Artifact)}},
  pages =	{25:1--25:2},
  journal =	{Dagstuhl Artifacts Series},
  ISSN =	{2509-8195},
  year =	{2023},
  volume =	{9},
  number =	{2},
  editor =	{Harris, Sarah and Cooksey, Simon and Vollmer, Michael and Batty, Mark},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/DARTS.9.2.25},
  URN =		{urn:nbn:de:0030-drops-182650},
  doi =		{10.4230/DARTS.9.2.25},
  annote =	{Keywords: Compilers, Rust, Memory Safety, CHERI}
}
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail